package com.ragdollcat.thirdaicodegenerate.annotation;


import org.redisson.api.RateIntervalUnit;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;


/**
 * 用户限流自定义注解
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface CheckLimiterRate {

    /**
     * 限流级别 默认用户维度
     */
    String type() default "user";

    /**
     * 时间窗口 默认60s
     *
     * @return
     */
    int interval() default 60;

    /**
     * 时间窗口内默认的次数
     *
     * @return
     */
    int timesInInterval() default 1;

    /**
     * 时间窗口单位 默认s
     *
     * @return
     */
    RateIntervalUnit IntervalTimeUnit() default RateIntervalUnit.SECONDS;

    /**
     * 返回的提示信息
     *
     * @return
     */
    String message() default "";
}
